<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Ticket extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los tickets de servicios de clientes pero NO los borrados (-1). En el caso de pasar un id de servicio de cliente
	//en la URL se muestra solo los tickets de ese servicio del cliente
	function consultar($idSxC=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: que idSxC sea numerico y mayor o igual que cero. Igual que cero quiere decir que hay que mostrar todos los tickets de todos los servicios de clientes existentes
			if(is_numeric($idSxC) && $idSxC>=0){
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados para pedirle un listado con todos ellos
				$this->load->model('m_servicioxcliente');
				
				//Busco todos los servicios activos
				$listadoServicios = $this->m_servicioxcliente->buscarActivos();
				
				//Le paso el listado de todos los servicios de clientes a la vista para que los muestre en un combo de filtrado
				$datos['servicios'] = $listadoServicios;
				
				//Le paso a la vista el id del servicio de cliente seleccionado
				$datos['idSxCSel'] = $idSxC;
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Restricciones a la consulta de la busqueda de tickets de servicios de clientes segun el servicio de cliente seleccionado
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				
				$restriccion = "";
				if($idSxC!=0){
					$restriccion .= " AND ticket.idSxC=".$idSxC;
				}
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo el modelo donde estan los datos de los tickets de servicios de clientes registrados
				$this->load->model('m_ticket');
				
				//Busco todos los tickets de servicios de clientes, menos los borrados(-1)
				$listadoTickets = $this->m_ticket->buscar($restriccion);
				
				//Le paso el listado de todas los tickets de los servicios de clientes a la vista para que los muestre en una tabla
				$datos['tickets'] = $listadoTickets;
				
				//Cargo la vista donde se muestra la tabla de tickets de servicios de clientes y la guardo en una variable para pasarsela a la vista principal
				$datosPrincipal['vista'] = $this->load->view('v_tickets', $datos, true);
				
				//Cargo la vista principal con los datos de la vista consultar tickets de servicios de clientes
				$this->load->view('v_admin', $datosPrincipal);
			} else {
				//No se han pasado los parametros minimos necesarios para consultar los tickets de servicios de clientes existentes.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	function eliminar($idTicket=null, $idSxC=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que idTicket sea numerico y mayor que cero. Ademas que idSxC sea numerico y mayor o igual que cero.			
			if(is_numeric($idTicket) && $idTicket>0 && is_numeric($idSxC) && $idSxC>=0){
				//Cargo el modelo donde estan los datos de los tickets de servicios de clientes registrados
				$this->load->model('m_ticket');
				
				//Elimino al ticket del servicio de cliente pasado por la url
				$respuesta = $this->m_ticket->eliminar($idTicket, $this->session->userdata('idUsuarioLog'));
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados para pedirle un listado con todos ellos
				$this->load->model('m_servicioxcliente');
				
				//Busco todos los servicios activos
				$listadoServicios = $this->m_servicioxcliente->buscarActivos();
				
				//Le paso el listado de todos los servicios de clientes a la vista para que los muestre en un combo de filtrado
				$datos['servicios'] = $listadoServicios;
				
				//Le paso a la vista el id del servicio de cliente seleccionado
				$datos['idSxCSel'] = $idSxC;
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Restricciones a la consulta de la busqueda de tickets de servicios de clientes segun el servicio de cliente seleccionado
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				
				$restriccion = "";
				if($idSxC!=0){
					$restriccion .= " AND ticket.idSxC=".$idSxC;
				}
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo el modelo donde estan los datos de los tickets de servicios de clientes registrados
				$this->load->model('m_ticket');
				
				//Busco todos los tickets de servicios de clientes, menos los borrados(-1)
				$listadoTickets = $this->m_ticket->buscar($restriccion);
				
				//Le paso el listado de todas los tickets de los servicios de clientes a la vista para que los muestre en una tabla
				$datos['tickets'] = $listadoTickets;
				
				//Cargo la vista donde se muestra la tabla de tickets de servicios de clientes
				$this->load->view('v_tickets', $datos);
			} else {
				//No se han pasado todos los parametros necesarios para borrar un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se han pasado todos los parametros necesarios para borrar un ticket de servicio de cliente");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un ticket de servicio de cliente");
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function abrirPantallaCrear($idSxC=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){							
			//Segunda comprobacion: que idSxC sea numerico y mayor o igual que cero. Igual que cero quiere decir que no hay que seleccionar ningun servicio de cliente.
			if(is_numeric($idSxC) && $idSxC>=0){
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados para pedirle un listado con todos ellos
				$this->load->model('m_servicioxcliente');
				
				//Busco todos los servicios de clientes activos
				$listadoServicios = $this->m_servicioxcliente->buscarActivos();
				
				//Le paso el listado de todos los servicios de clientes a la vista para que los muestre en un combo
				$datos['servicios'] = $listadoServicios;
				
				//Le paso a la vista el id del servicio de cliente seleccionado
				$datos['idSxCSel'] = $idSxC;
				
				////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
				//Cargo la vista donde se muestra el formulario para crear un ticket de servicio de cliente y la guardo en una variable para pasarsela a la vista principal
				$datosPrincipal['vista'] = $this->load->view('v_tickets_crear',$datos, true);
				
				//Cargo la vista principal con los datos de la vista para crear un ticket de servicio de cliente
				$this->load->view('v_admin', $datosPrincipal);
			} else {
				//No se han pasado todos los parametros necesarios para crear un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function crear(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que se haya pasado por post el servicio del cliente, asunto, mensaje y estado del ticket a crear
			if(is_numeric($this->input->post('sxc',true)) && $this->input->post('sxc',true)>0 && 
			    $this->input->post('asunto',true)!="" && $this->input->post('mensaje',true)!="" && 
			   ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0' || $this->input->post('estado',true) == '2')){
				
				//Cargo el modelo donde estan los datos de los tickets
				$this->load->model('m_ticket');
				
				//Creamos el ticket
				$resultado = $this->m_ticket->crear($this->input->post('sxc',true),													
													$this->input->post('asunto',true),
													$this->input->post('mensaje',true),
													$this->input->post('respuesta',true),
													2,
													$this->input->post('estado',true), $this->session->userdata('idUsuarioLog'));
				
				if($resultado == 1){
					$ultimoTicketCreado = $this->db->insert_id();
															
					//Cargo el modelo para cargar un mail a la cola
					$this->load->model('m_cola_mail');
					
					//Creamos el mail. idTabla, idRegistro, tipoOperacion, estado
					$resultado = $this->m_cola_mail->crear(5, $ultimoTicketCreado, 1, 2, $this->session->userdata('idUsuarioLog'));
					
					echo("<script> alert('El ticket se ha creado correctamente.');</script>");
				}else{
					echo("<script> alert('El ticket no se ha creado. Ha habido un error.');</script>");
				}
			} else {
				//No se han pasado los parametros minimos para crear un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function abrirPantallaModificar($idTicket=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){
			//Segunda comprobacion: Que idTicket pasado sea numerico y mayor que cero.
			if(is_numeric($idTicket) && $idTicket>0){
				//Cargo el modelo donde estan los datos de los tickets registrados
				$this->load->model('m_ticket');
				
				//Busco al ticket que hay que modificar
				$ticket = $this->m_ticket->get($idTicket);
				
				//Tercera comprobacion: Que el ticket pasado por la url sea existente
				if($ticket->num_rows() == 1){
					//Le paso el ticket a modificar a la vista
					$datos['ticketSel'] = $ticket;
					
					//Busco al ticket siguiente del que hay que modificar
					$idTicketSig = $this->m_ticket->getContiguo($idTicket,1);
					
					//Le paso el ticket siguiente del que hay que modificar a la vista
					$datos['idTicketSig'] = $idTicketSig;
					
					//Busco al ticket anterior del que hay que modificar
					$idTicketAnt = $this->m_ticket->getContiguo($idTicket,-1);
					
					//Le paso el ticket anterior del que hay que modificar a la vista
					$datos['idTicketAnt'] = $idTicketAnt;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los servicios de clientes registrados para pedirle un listado con todos ellos
					$this->load->model('m_servicioxcliente');
					
					//Busco todos los servicios de clientes y no solo los activos
					$listadoServicios = $this->m_servicioxcliente->buscar();
					
					//Le paso el listado de todos los servicios de clientes a la vista para que los muestre en un combo
					$datos['servicios'] = $listadoServicios;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para modificar un ticket y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_tickets_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar un ticket
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para modificar un ticket
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function modificar($idTicket=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && ($this->session->userdata('tipoUsuarioLog') == '1' || $this->session->userdata('tipoUsuarioLog') == 'Admin Root')){	   
			//Segunda comprobacion: Que se haya pasado por post el servicio del cliente, asunto, mensaje y estado del ticket a modificar
			if(is_numeric($idTicket) && $idTicket>0 &&
			    $this->input->post('asunto',true)!="" && $this->input->post('mensaje',true)!="" && 
			   ($this->input->post('estado',true) == '1' || $this->input->post('estado',true) == '0' || $this->input->post('estado',true) == '2')){
				
				//Cargo el modelo donde estan los datos de los tickets
				$this->load->model('m_ticket');
				
				//Modificamos el ticket
				$resultado = $this->m_ticket->modificar($idTicket,
														$this->input->post('asunto',true),
														$this->input->post('mensaje',true),
														$this->input->post('respuesta',true),2,
														$this->input->post('estado',true));
				if($resultado == 1){
					//Cargo el modelo para cargar un mail a la cola
					$this->load->model('m_cola_mail');
					
					//Creamos el mail. idTabla, idRegistro, tipoOperacion, estado
					$resultado = $this->m_cola_mail->crear(5, $idTicket, 2, 2, $this->session->userdata('idUsuarioLog'));
					
					echo("<script> alert('El ticket se ha modificado correctamente.');</script>");
				} else{
					echo("<script> alert('El ticket no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
				}
			} else {
				//No se han pasado los parametros minimos necesarios para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los tickets del servicio del cliente pasado por la url pero NO los borrados (-1).
	function misTickets($idSxC=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && $this->session->userdata('tipoUsuarioLog') == '2'){
			//Segunda comprobacion: que idSxC sea numerico y mayor que cero.
			if(is_numeric($idSxC) && $idSxC>0){
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados
				$this->load->model('m_servicioxcliente');
				
				//Busco al servicio de cliente que hay que ver los tickets para ver si existe realmente
				$servicio = $this->m_servicioxcliente->get($idSxC);
				
				//Tercera comprobacion: Que el servicio de cliente pasado por la url sea existente y del cliente logeado
				if($servicio->num_rows() == 1 && $this->session->userdata('idClienteLog') == $servicio->row()->idCliente){
					//Le paso a la vista el id del servicio de cliente seleccionado
					$datos['idSxCSel'] = $idSxC;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a la consulta de la busqueda de tickets de servicios del cliente segun el servicio pasado por la url
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					
					$restriccion = "";
					if($idSxC!=0){
						$restriccion .= " AND ticket.idSxC=".$idSxC;
					}
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los tickets de los servicios de clientes registrados
					$this->load->model('m_ticket');
											
					//Busco todos los tickets del servicio del cliente, menos los borrados(-1)
					$listadoTickets = $this->m_ticket->buscar($restriccion);
					
					//Le paso el listado de todos los tickets del servicio del cliente a la vista para que los muestre en una tabla
					$datos['tickets'] = $listadoTickets;
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
					
					//Cargo la vista donde se muestra la tabla de tickets del servicio del cliente y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_tickets_mistickets', $datos, true);
					
					//Cargo la vista principal con los datos de la vista consultar tickets del servicio del cliente
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no existe o no es del usuario logeado.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para consultar los tickets del servicio del cliente.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function visualizar($idTicket=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && $this->session->userdata('tipoUsuarioLog') == '2'){
			//Segunda comprobacion: Que idTicket pasado sea numerico y mayor que cero.
			if(is_numeric($idTicket) && $idTicket>0){
				//Cargo el modelo donde estan los datos de los tickets registrados
				$this->load->model('m_ticket');
				
				//Busco al ticket que hay que visualizar
				$ticket = $this->m_ticket->get($idTicket);
				
				//Tercera comprobacion: Que el ticket pasado por la url sea existente y del cliente logeado
				if($ticket->num_rows() == 1 && $this->session->userdata('idClienteLog') == $ticket->row()->idCliente){
					//Le paso el ticket a visualizar a la vista
					$datos['ticketSel'] = $ticket;
							
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para visualizar un ticket y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_tickets_visualizar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para visualizar un ticket
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no existe o no es del cliente logeado.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado los parametros minimos necesarios para visualizar un ticket
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function abrirPantallaCrearTicket($idSxC=null, $motivoTicket=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo del cliente
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && $this->session->userdata('tipoUsuarioLog') == '2'){
			//Segunda comprobacion: que idSxC sea numerico y mayor que cero.
			if(is_numeric($idSxC) && $idSxC>0){
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados
				$this->load->model('m_servicioxcliente');
				
				//Busco al servicio de cliente que hay que crear el ticket para ver si existe realmente
				$servicio = $this->m_servicioxcliente->get($idSxC);
				
				//Tercera comprobacion: Que el servicio de cliente pasado por la url sea existente y del cliente logeado
				if($servicio->num_rows() == 1 && $this->session->userdata('idClienteLog') == $servicio->row()->idCliente){
					//Le paso a la vista el id del servicio de cliente seleccionado
					$datos['idSxCSel'] = $idSxC;
					
					//Le paso a la vista el motivo del ticket
					if(is_numeric($motivoTicket) && $motivoTicket == 1){						
						$datos['motivoSel'] = $motivoTicket;
					}else{
						$datos['motivoSel'] = "";
					}
					
					//Busco todos los servicios activos de este cliente logeado
					$listadoServicios = $this->m_servicioxcliente->buscarActivos(" AND cliente.idCliente=".$servicio->row()->idCliente);
					
					//Le paso el listado de todos los servicios del cliente a la vista para que los muestre en un combo
					$datos['servicios'] = $listadoServicios;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para crear un ticket de servicio de cliente y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_tickets_crearticket',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para crear un ticket de servicio de cliente
					$this->load->view('v_admin', $datosPrincipal);
				} else {
					//El registro no es del usuario logeado
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//No se han pasado todos los parametros necesarios para crear un registro
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Esto metodo no se puede llamar con ajax
	function crearTicket(){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que el ambito sea el panel administrativo
		if($this->session->userdata('sesionIniciada') == 'si' && $this->session->userdata('ambito') == 'admin' && $this->session->userdata('tipoUsuarioLog') == '2'){
			//Segunda comprobacion: Que se haya pasado por post el servicio del cliente, asunto y mensaje del ticket a crear
			if(is_numeric($this->input->post('sxc',true)) && $this->input->post('sxc',true)>0 && $this->input->post('asunto',true)!="" && $this->input->post('mensaje',true)!=""){				
				//Cargo el modelo donde estan los datos de los servicios de clientes registrados
				$this->load->model('m_servicioxcliente');
				
				//Busco al servicio de cliente que hay que crear el ticket para ver si existe realmente
				$servicio = $this->m_servicioxcliente->get($this->input->post('sxc',true));
				
				//Tercera comprobacion: Que el servicio de cliente pasado por la url sea existente y del cliente logeado
				if($servicio->num_rows() == 1 && $this->session->userdata('idClienteLog') == $servicio->row()->idCliente){					
					//Cargo el modelo donde estan los datos de los tickets
					$this->load->model('m_ticket');
					
					//Creamos el ticket
					$resultado = $this->m_ticket->crear($this->input->post('sxc',true),													
														$this->input->post('asunto',true),
														$this->input->post('mensaje',true),
														"",
														2,
														1, $this->session->userdata('idUsuarioLog'));
					
					if($resultado == 1){
						$ultimoTicketCreado = $this->db->insert_id();
															
						//Cargo el modelo para cargar un mail a la cola
						$this->load->model('m_cola_mail');
						
						//Creamos el mail. idTabla, idRegistro, tipoOperacion, estado
						$resultado = $this->m_cola_mail->crear(5, $ultimoTicketCreado, 3, 2, $this->session->userdata('idUsuarioLog'));
						
						echo("<script> alert('El ticket se ha creado correctamente.');</script>");
					}else{
						echo("<script> alert('El ticket no se ha creado. Ha habido un error.');</script>");
					}
				} else {
					//El registro no es del usuario logeado.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
				}
			} else {
				//No se han pasado los parametros minimos para crear un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
		}
	}
}

/* End of file ticket.php */
/* Location: ./application/controllers/ticket.php */